//
// Created by y z l on 2023/7/22.
//
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

class Solution {
public:
    void setZeroes(vector< vector<int> >& matrix) {
        int vec_len_col = matrix.size();
        int vec_len_raw = matrix[0].size();
        vector<int> col(vec_len_col,0);
        vector<int> raw(vec_len_raw,0);
        // 标记出现0的行和列
        for(int i=0;i<vec_len_col;i++){
            for(int j=0;j<vec_len_raw;j++){
                if(matrix[i][j]==0){
                    col[i] = 1;
                    raw[j] = 1;
                }
            }
        }
        for(int i=0;i<vec_len_col;i++){
            if(col[i]==1){
                for(int j=0;j<vec_len_raw;j++){
                    matrix[i][j]=0;
                }
            }
        }
        for(int i=0;i<vec_len_raw;i++){
            if(raw[i]==1){
                for(int j=0;j<vec_len_col;j++){
                    matrix[j][i]=0;
                }
            }
        }
    }
};

int main(){
    vector< vector<int> > matrix;
    for(int i=0;i<3;i++){
        vector<int> vec;
        for(int i=0;i<4;i++){
            vec.push_back(1);
        }
        matrix.push_back(vec);
    }
    matrix[1][1] = 0;
    Solution solu;
    solu.setZeroes(matrix);

    return 0;
}